#pragma once 
#include <bits/stdc++.h>

/*****************************************************************************
 *! @brief emplace_back可以就地通过参数构造对象，而不需要拷贝或者移动内存. 相比push_back
 *!        能更好地避免内存移动与拷贝, 是容器插入元素时的性能得到进一步提升.
 *
 * 
 * 
 * 
 *  
 ****************************************************************************/

struct Rectangle {
    int x;
    double y;
    Rectangle(int x, double y) : x(x), y(y) {
        std::cout << "construct" << std::endl;
    }

    Rectangle(const Rectangle& rhs) : x(rhs.x), y(rhs.y) {
        std::cout << "copy construct" << std::endl;
    }

    ~Rectangle() {
        std::cout << "destruct" << std::endl;
    }
};



int std_emplace_back();